home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 12 C64 Telecom / TERMX1.SDA / TERMX1.SRC < prev    next >
Encoding:
Text File  |  2019-04-13  |  10.1 KB  |  825 lines

  1. ********************************
  2. *      XMODEM ROUTINES         *
  3. ********************************
  4.  ORG $C000
  5. *                              *
  6. MESAGE MAC
  7.  LDA #<]1
  8.  STA MSGPNT
  9.  LDA #>]1
  10.  STA MSGPNT+1
  11.  JSR DOMSG
  12.  <<<
  13. CLOSE = $FFC3
  14. CHKOUT = $FFC9
  15. CHROUT = $FFD2
  16. CHKIN = $FFC6
  17. GETIN = $FFE4
  18. READST = $FFB7
  19. ENABL = $02A1
  20. RSSTB = $029D
  21. RSETB = $029E
  22. RSREGO = $F028 ;NON STANDARD CALL
  23. TIME = $A0
  24. TICK = TIME+1 ;4SECOND CLOCK
  25. TOCK = TIME+2 ;JIFFY CLOCK
  26. SOH = $01
  27. EOT = $04
  28. ACK = $06
  29. NAK = $15
  30. CAN = $18
  31. XBUF = $C700
  32. BLOCKN = XBUF+1
  33. NBLOCK = XBUF+2
  34. DATA = XBUF+3
  35. DATAE = XBUF+130 ;LAST DATA BYTE.
  36. PCKSUM = XBUF+131
  37. SHFLAG = $028D
  38. DBPNT = $61 ;$62
  39. DEPNT = $63 ;$64
  40. MSGPNT = $65 ;$66 FAC1
  41.  
  42. ********************************
  43. *                              *
  44. *   HEADER HERE $C000          *
  45. *                              *
  46. ********************************
  47. *                              *
  48.  JMP DOWNLOAD
  49.  JMP UPLOAD
  50.  JMP TERMINAL
  51.  NOP
  52.  NOP
  53.  NOP
  54.  NOP
  55.  NOP
  56.  NOP
  57.  
  58.  
  59. BLOCK DFB 0
  60. CKSUM DFB 0
  61. TOCHK DFB 0
  62. LOCPOINT DFB 0
  63. CANFLAG DFB 0
  64. SCRUBFLG DFB 0
  65. CHAR DFB 0
  66. STAT DFB 0
  67. EOFLAG DFB 0
  68. HOLDSB DFB 0
  69. HOLDY DFB 0
  70. RAMTMP DFB 0
  71.  DFB 0
  72. DECTMP DFB $30,$30,$30,$30,$30
  73.  
  74.  
  75. *
  76. *
  77. * RESET TICK TOCK
  78. RESTT LDA #0
  79.  STA TOCK
  80.  STA TICK
  81.  RTS
  82. *
  83. *
  84. *
  85. *20 SECOND CLOCK. RETURN NE IF RUNOUT
  86. TT20
  87.  LDA TICK
  88.  CMP #5
  89.  BGE DING ;BCS
  90.  LDA #0
  91.  RTS
  92. DING
  93.  LDA #$FF
  94.  RTS
  95. *
  96. *
  97. * 4 SECOND CLOCK
  98. TT4
  99.  LDA TICK
  100.  CMP #1
  101.  BGE DING
  102.  LDA #0
  103.  RTS
  104. *
  105. *
  106. GET232
  107.  LDX #$05
  108.  JSR CHKIN
  109.  JSR GETIN
  110.  STA CHAR
  111.  JSR READST
  112.  STA STAT
  113.  LDX #$00
  114.  JSR CHKIN
  115.  LDA STAT
  116.  AND #$F7 ;ERRORS?
  117.  BNE EXITRS
  118.  LDA STAT
  119.  AND #$08
  120. EXITRS RTS  ;RET ne IF NO BYTE READ
  121. *
  122. * RECIEVE STUFF
  123. GETBLOCK
  124.  LDA #10 ;10 TRIES
  125.  STA TOCHK
  126. RENTRY2 LDA #$0
  127.  STA LOCPOINT
  128.  STA CKSUM
  129.  STA SCRUBFLG
  130.  STA CANFLAG
  131.  JSR CLRUP
  132.  JSR RESTT
  133.  
  134. GETRS232
  135.  LDA SHFLAG
  136.  CMP #$06 ;CTRL KEY
  137.  BEQ CANCEL
  138.  JSR GET232
  139.  BNE NOCHAR
  140.  LDA LOCPOINT
  141.  BNE NOCHECK
  142.  LDA CHAR
  143.  CMP #EOT
  144.  BNE SKP1
  145.  LDA #0
  146.  RTS  ;A=0 FINISH
  147. SKP1
  148.  CMP #CAN
  149.  BEQ CANCEL
  150.  CMP #SOH
  151.  BNE NOCHAR
  152. NOCHECK
  153.  LDA CHAR
  154.  LDX LOCPOINT
  155.  STA XBUF,X
  156.  INC LOCPOINT
  157.  LDA LOCPOINT
  158.  CMP #PCKSUM+1
  159.  BEQ GOTBLOCK
  160.  JSR RESTT ;RESET CLOCK
  161.  JMP GETRS232 ;JUMP ALWAYS
  162. CANCEL LDA #$FF
  163.  STA CANFLAG
  164.  RTS
  165. GOTBLOCK
  166.  LDA #$FF
  167.  RTS
  168. *
  169. NOCHAR
  170.  JSR TT20
  171.  BEQ GETRS232 ;TRY AGAIN
  172. ;OOPS TIMED OUT
  173.  DEC TOCHK
  174.  BEQ SCRUBREC ;FORGET IT
  175. ;EAT THE DATA
  176.  >>> MESAGE.MSGTOB
  177.  JSR SHOWBLK
  178.  JSR RESTT
  179. RWAIT4
  180.  JSR GET232 ;JUST FOR FUN
  181.  JSR TT4
  182.  BEQ RWAIT4
  183.  LDA #NAK
  184.  STA CHAR
  185.  JSR SENDCHAR
  186.  JMP RENTRY2
  187.  
  188. SCRUBREC LDA #$FF
  189.  STA SCRUBFLG
  190.  RTS
  191. *
  192. *
  193. SENDCHAR
  194.  LDX #5 ;RS232
  195.  JSR CHKOUT
  196.  LDX TOCK
  197.  INX
  198. WAITON
  199.  CPX TOCK
  200.  BNE WAITON
  201.  LDA CHAR
  202.  JSR CHROUT
  203.  LDX #0
  204.  JSR CHKOUT
  205.  RTS
  206. *
  207. *
  208. CHECKSUM   ;GUESS
  209.  LDA #0
  210.  LDX #DATAE ;131 BYTES
  211. CKLP CLC
  212.  ADC XBUF,X
  213.  DEX
  214.  BNE CKLP
  215.  CLC
  216.  ADC XBUF ;LAST ONE
  217.  STA CKSUM
  218.  RTS
  219. *
  220. *
  221. *
  222. *
  223. DOWNLOAD
  224.  
  225.  
  226.  >>> MESAGE.DOWNLD
  227.  
  228.  LDA #0
  229.  STA BLOCK
  230. BADBLOCK LDA #NAK ;FIRST NAK
  231. BLKLUP STA CHAR
  232.  JSR SENDCHAR
  233.  JSR GETBLOCK
  234.  BNE NUTS ;FINISHED
  235.  JMP DUNN
  236. NUTS
  237.  LDA CANFLAG
  238.  BEQ BLKLP1
  239.  >>> MESAGE.MSGABT
  240.  JMP BADREC
  241. BLKLP1
  242.  LDA SCRUBFLG
  243.  BEQ BLKLP2
  244.  >>> MESAGE.MSGCGB
  245.  JMP BADREC
  246. BLKLP2
  247.  >>> MESAGE.MSGHAB
  248.  JSR SHOWBLK
  249.  CLC
  250.  LDA XBUF
  251.  ADC BLOCKN
  252.  CLC
  253.  ADC NBLOCK
  254.  BEQ BLKLP3
  255.  >>> MESAGE.MSGHNG
  256.  JMP BADBLOCK
  257. BLKLP3
  258.  LDX BLOCK
  259.  INX
  260.  CPX BLOCKN
  261.  BEQ BLKLP4
  262.  >>> MESAGE.MSGBMM
  263.  JMP BADBLOCK
  264. BLKLP4
  265.  JSR CHECKSUM
  266.  LDA PCKSUM
  267.  CMP CKSUM
  268.  BEQ BLKLP5
  269.  >>> MESAGE.MSGCHK
  270.  JMP BADBLOCK
  271. BLKLP5
  272.  
  273.  
  274.  INC BLOCK
  275.  LDA #<DATA
  276.  STA DBPNT
  277.  LDA #>DATA
  278.  STA DBPNT+1
  279. ;VIDTEX HEADER CHECK
  280.  LDA BLOCK
  281.  CMP #$01 ;FIRST?
  282.  BNE NOVT ;NOPE
  283.  LDA DATA
  284.  CMP #04
  285.  BNE NOVT
  286.  LDA DATA+1
  287.  CMP #00
  288.  BNE NOVT
  289.  LDA DATA+2
  290.  CMP #$43
  291.  BNE NOVT
  292.  LDA DATA+3
  293.  CMP #$43 ;C
  294.  BNE NOVT
  295. ;MUST BE VIDTEX
  296.  LDA #<DATA+6
  297.  STA DBPNT
  298.  >>> MESAGE.MSGVTX
  299. NOVT
  300.  
  301.  LDA #<DATAE
  302.  STA DEPNT
  303.  LDA #>DATAE
  304.  STA DEPNT+1
  305.  JSR WRITEOUT
  306.  
  307.  
  308.  
  309.  LDA #ACK
  310.  JMP BLKLUP
  311. *
  312. DUNN
  313.  
  314.  
  315.  LDA #8
  316.  JSR CLOSE
  317.  >>> MESAGE.MSGDLD
  318.  
  319.  LDA #ACK
  320.  STA CHAR
  321.  JSR SENDCHAR
  322.  LDA #00 ;EXIT EQ
  323.  RTS  ;THE END
  324. BADREC
  325.  >>> MESAGE.MSGFTC
  326.  
  327.  
  328.  
  329.  LDA #8
  330.  JSR CLOSE
  331.  LDA #CAN
  332.  STA CHAR
  333.  JSR SENDCHAR
  334.  JSR SENDCHAR
  335.  LDA #ACK
  336.  STA CHAR
  337.  JSR SENDCHAR
  338.  LDA #$FF ;EXIT NE
  339.  RTS
  340. *
  341. MSGFTC
  342.  DFB $11,$0D
  343.  TXT  '[FAILURE TO COMMUNICATE!]'
  344.  DFB $11,$0D,$00
  345. *
  346. *
  347. WRITEOUT
  348.  LDX #8
  349.  JSR CHKOUT
  350. WOLUP LDY #0
  351.  LDA (DBPNT),Y
  352.  JSR CHROUT
  353.  LDA DBPNT
  354.  CMP DEPNT
  355.  BNE INCDB
  356.  LDA DBPNT+1
  357.  CMP DEPNT+1
  358.  BEQ ENDWO
  359. INCDB
  360.  INC DBPNT
  361.  BNE WOLUP
  362.  INC DBPNT+1
  363.  JMP WOLUP
  364.  
  365. ENDWO
  366.  LDX #0
  367.  JSR CHKOUT
  368.  RTS
  369. *
  370. *
  371.  
  372.  
  373.  
  374.  
  375.  
  376. DOWNLD DFB $0D
  377.  TXT +[Chrisdos' XMODEM Download]+
  378.  DFB $00
  379.  
  380. MSGCHK DFB $0D
  381.  TXT  '[CheckSum Error]'
  382.  DFB $00
  383. MSGHNG DFB $0D
  384.  TXT  '[Header No Good]'
  385.  DFB $00
  386. MSGBMM DFB $0D
  387.  TXT  '[Block Mismatch]'
  388.  DFB $00
  389. MSGCGB DFB $0D
  390.  TXT  '[Cant Get Block]'
  391.  DFB $00
  392. MSGTOB DFB $0D
  393.  TXT  '[Time Out - Block] '
  394.  DFB $00
  395. MSGHAB DFB $0D
  396.  TXT  '[Have Block] '
  397.  DFB $00
  398. MSGVTX DFB $0D
  399.  TXT  '[Stripped VIDTEX Header]'
  400.  DFB $00
  401. MSGDLD DFB $0D
  402.  TXT  '[Download Done]'
  403.  DFB $00
  404. MSGABT DFB 13
  405.  TXT  '[*Aborted*]'
  406.  DFB 00
  407. DOMSG
  408.  LDY #0
  409.  LDA (MSGPNT),Y
  410.  BNE DOMORE
  411.  RTS
  412. DOMORE
  413.  JSR CHROUT
  414.  INC MSGPNT
  415.  BNE DOMSG
  416.  INC MSGPNT+1
  417.  JMP DOMSG
  418. ********************************
  419. ********************************
  420. ********************************
  421. ********************************
  422. UPLOAD
  423.  >>> MESAGE.UPMSG
  424.  LDA #0
  425.  STA BLOCK
  426.  LDA #10
  427.  STA TOCHK ;TRYS
  428. CANW2
  429.  JSR RESTT
  430.  >>> MESAGE.MSGIRW
  431.  DEC TOCHK
  432.  BNE CANW3
  433. CANW4
  434.  JMP XSCAN ;TIMEOUT
  435. CANW3
  436.  LDA SHFLAG
  437.  CMP #$06 ;CTRL C=
  438.  BEQ CANW4
  439.  JSR TT20
  440.  BNE CANW2 ;TIMEOUT
  441.  JSR GET232
  442.  BNE CANW3 ;NO BYTE
  443.  LDA CHAR
  444.  CMP #NAK
  445.  BNE CANW3
  446. ;CONTINUE
  447. UPLUP
  448.  LDA #<DATA
  449.  STA DBPNT
  450.  LDA #>DATA
  451.  STA DBPNT+1
  452.  LDA #<DATAE
  453.  STA DEPNT
  454.  LDA #>DATAE
  455.  STA DEPNT+1
  456.  JSR CLRUP
  457.  LDA #11 ;10 TRIES
  458.  STA TOCHK
  459.  JSR LOADBF
  460.  LDA #SOH
  461.  STA XBUF
  462.  INC BLOCK
  463.  LDA BLOCK
  464.  STA BLOCKN
  465.  EOR #$FF
  466.  STA NBLOCK
  467.  JSR CHECKSUM
  468.  LDA CKSUM
  469.  STA PCKSUM
  470. XSOMT
  471.  DEC TOCHK
  472.  BEQ XSCAN
  473.  JSR XMOSEN
  474.  >>> MESAGE.MSGSEB
  475.  JSR SHOWBLK
  476.  JSR RESTT
  477. XSWAIT
  478.  LDA SHFLAG
  479.  CMP #$06
  480.  BEQ XSCAN
  481.  JSR TT20
  482.  BNE XSDING
  483.  JSR GET232
  484.  BNE XSWAIT
  485. ;
  486.  LDA CHAR
  487.  CMP #ACK
  488.  BEQ CKLAST
  489.  CMP #NAK
  490.  BEQ XSOMT
  491.  CMP #CAN
  492.  BEQ XSCAN
  493. ;
  494.  JMP XSWAIT
  495. ;
  496. XSDING
  497.  >>> MESAGE.MSGTOB
  498.  JSR SHOWBLK
  499.  JMP XSOMT
  500. ;
  501. ;
  502. CKLAST
  503.  LDA EOFLAG
  504.  BNE LAST1
  505.  JMP UPLUP
  506. ;
  507. LAST1
  508.  LDA #EOT
  509.  STA CHAR
  510.  JSR SENDCHAR
  511.  >>> MESAGE.MSGUPD
  512.  LDA #8
  513.  JSR CLOSE
  514.  LDA #00 ;EXIT EQ
  515.  RTS  ;AND OUT
  516. *
  517. XSCAN
  518.  LDA #8
  519.  JSR CLOSE
  520.  LDA #CAN
  521.  STA CHAR
  522.  JSR SENDCHAR
  523.  JSR SENDCHAR
  524.  LDA #ACK
  525.  STA CHAR
  526.  JSR SENDCHAR
  527.  >>> MESAGE.MSGABT
  528.  LDA #$FF ;EXIT NE
  529.  RTS  ;BAD OUT
  530. *
  531. XMOSEN
  532.  LDX #5
  533.  JSR CHKOUT
  534.  LDY #<XBUF-1
  535. XMOSL
  536.  INY
  537.  STY HOLDY
  538.  LDA XBUF,Y
  539.  JSR CHROUT
  540.  JSR DOSPCN ;SPEED CONTROL
  541.  LDY HOLDY
  542.  CPY #<PCKSUM
  543.  BNE XMOSL
  544. *
  545.  LDX #0
  546.  JSR CHKOUT
  547.  RTS
  548. *
  549. *
  550. CLRUP
  551.  LDA #$1A ;^Z
  552.  LDY #133
  553. DY
  554.  DEY
  555.  STA XBUF,Y
  556.  BNE DY
  557.  RTS
  558. *
  559. *
  560. DOSPCN   ;SPEED CONTROL
  561.  LDX TOCK ;JIFFY CLOCK
  562.  INX
  563. DOSP3
  564.  CPX TOCK
  565.  BNE DOSP3 ;1/60 SEC
  566.  LDA ENABL
  567.  AND #$03
  568.  CMP #$03
  569.  BEQ MBXOFF ;MASHED
  570.  JSR GET232
  571.  BNE SPEED
  572.  LDA CHAR
  573.  CMP #$13 ;XOFF
  574.  BNE SPEED
  575. MBXOFF
  576.  JSR HALTRS
  577.  JSR RESTT
  578.  LDX #0
  579.  JSR CHKOUT
  580.  >>> MESAGE.XOFFED
  581. DOSP1
  582.  JSR GET232
  583.  BNE DOSP2
  584.  LDA CHAR
  585.  CMP #$11 ;XON
  586.  BEQ SPEED3
  587. DOSP2
  588.  JSR TT20
  589.  BEQ DOSP1
  590. ;TIMEOUT
  591.  >>> MESAGE.TOXON
  592.  JSR GORS
  593.  JMP SPEED
  594. SPEED3
  595.  >>> MESAGE.XONED
  596.  JSR GORS
  597. *
  598. SPEED
  599.  LDX #5
  600.  JSR CHKOUT
  601.  RTS
  602. *
  603. HALTRS
  604.  LDA RSSTB
  605.  STA HOLDSB
  606.  LDA RSETB
  607.  STA RSSTB
  608.  RTS
  609. ;
  610. GORS
  611.  LDA HOLDSB
  612.  CMP RSETB
  613.  BNE GORS1
  614.  RTS  ;NOT NEEDED
  615. GORS1
  616.  STA RSSTB
  617.  JSR RSREGO
  618.  RTS
  619. UPMSG DFB $0D
  620.  TXT +[Chrisdos' XMODEM Upload]+
  621.  DFB $00
  622. MSGUPD DFB $0D
  623.  TXT '[Upload Done]'
  624.  DFB $00
  625. MSGSEB DFB $0D
  626.  TXT '[Sent Block] '
  627.  DFB $00
  628. MSGIRW DFB $0D
  629.  TXT '[Waiting For NAK]'
  630.  DFB $00
  631. XOFFED DFB $0D
  632.  TXT '[XOFF]'
  633.  DFB $00
  634. XONED DFB $0D
  635.  TXT '[XON]'
  636.  DFB $00
  637. TOXON DFB $0D
  638.  TXT '[Time Out XON]'
  639.  DFB $00
  640. ********************************
  641. SHOWBLK
  642.  LDA BLOCK
  643.  STA RAMTMP
  644.  LDA #0
  645.  STA RAMTMP+1
  646.  LDX #0
  647.  LDY #0
  648. HD1
  649.  LDA #'0
  650.  STA DECTMP,X
  651. HD2
  652.  SEC
  653.  LDA RAMTMP
  654.  SBC TABDEC,Y
  655.  PHA
  656.  LDA RAMTMP+1
  657.  SBC TABDEC+1,Y
  658.  BCC HD3
  659.  STA RAMTMP+1
  660.  PLA
  661.  STA RAMTMP
  662.  INC DECTMP,X
  663.  JMP HD2
  664. HD3
  665.  PLA
  666.  INY
  667.  INY
  668.  INX
  669.  CPX #5
  670.  BCC HD1
  671.  LDY #0
  672. HD4
  673.  LDA DECTMP,Y
  674.  INY
  675.  CPY #5
  676.  BCS HD5
  677.  CMP #'0
  678.  BEQ HD4
  679. HD5
  680.  STY RAMTMP
  681.  JSR CHROUT
  682.  LDY RAMTMP
  683.  LDA DECTMP,Y
  684.  INY
  685.  CPY #6
  686.  BCC HD5
  687. *
  688.  LDA #$11
  689.  JSR CHROUT
  690.  LDA #$0D
  691.  JSR CHROUT
  692.  RTS
  693. *
  694. TABDEC DA 10000,1000,100,10,1
  695. ********************************
  696. LOADBF
  697.  LDX #8
  698.  JSR CHKIN
  699.  LDA #0
  700.  STA EOFLAG
  701. L2A
  702.  LDA $90 ;STATUS
  703.  AND #$64
  704.  BNE L2F
  705.  JSR GETIN
  706.  LDY #0
  707.  STA (DBPNT),Y
  708.  LDA DBPNT
  709.  CMP DEPNT
  710.  BNE L2G
  711.  LDA DBPNT+1
  712.  CMP DEPNT+1
  713.  BEQ L2H
  714. L2G
  715.  INC DBPNT
  716.  BNE L2A
  717.  INC DBPNT+1
  718.  JMP L2A
  719. *
  720. L2F
  721.  LDA #$FF
  722.  STA EOFLAG
  723.  DEC DBPNT
  724.  CMP DBPNT
  725.  BNE L2H
  726.  DEC DBPNT+1
  727. L2H
  728.  LDX #0
  729.  JSR CHKIN
  730.  RTS
  731. ********************************
  732. ********************************
  733. ********************************
  734. ********************************
  735. ********************************
  736. TERMINAL
  737.  LDA SHFLAG
  738.  CMP #$06
  739.  BNE NOTOUT
  740.  RTS  ;EXIT!
  741. NOTOUT
  742.  LDA #0
  743.  STA $CC ;CUR BLINK OK
  744.  JSR GET232
  745.  BNE KEYBD
  746.  LDA #$FF
  747.  STA $CC ;CR BLINK OFF
  748.  LSR $CF ;CUR REV?
  749.  BCC ISOK
  750.  LDY $D3 ;LINE OFFSET
  751.  LDX $0287 ;COLOR
  752.  LDA ($D1),Y ;CHAR
  753.  EOR #$80 ;REVERSE
  754.  JSR $EA1C ;BACK TO SCREEN
  755. ISOK
  756.  LDA CHAR
  757.  AND #$7F
  758.  STA CHAR
  759.  CMP #8 ;BS?
  760.  BNE NOTBS
  761.  LDA #20
  762.  STA CHAR ;DELETE
  763. NOTBS
  764.  CMP #10 ;LF?
  765.  BNE NOTLF
  766.  JMP TERMINAL
  767. NOTLF
  768.  CMP #$61 ;ASCII LOWER
  769.  BCC NOTAL
  770.  CMP #$7B
  771.  BCS NOTAL
  772.  SEC
  773.  SBC #32
  774.  STA CHAR
  775.  JMP NOTAU
  776. NOTAL
  777.  CMP #$41 ;ASCII UPPER
  778.  BCC NOTAU
  779.  CMP #$5B
  780.  BCS NOTAU
  781.  CLC
  782.  ADC #128
  783.  STA CHAR
  784. *
  785. NOTAU
  786.  LDA CHAR
  787.  JSR CHROUT
  788.  LDA #0
  789.  STA 212 ;QUOTE MODE OFF
  790.  JMP TERMINAL
  791. *
  792. *
  793. KEYBD
  794.  JSR GETIN
  795.  BEQ TERMINAL
  796.  STA CHAR
  797.  CMP #$41 ;CBM LOWER
  798.  BCC NOTCL
  799.  CMP #$5B
  800.  BCS NOTCL
  801.  CLC
  802.  ADC #32
  803.  STA CHAR
  804.  JMP NOTCBS
  805. NOTCL
  806.  CMP #$C1
  807.  BCC NOTCU
  808.  CMP #$DB
  809.  BCS NOTCU
  810.  SEC
  811.  SBC #128
  812.  STA CHAR
  813. NOTCU
  814.  CMP #20
  815.  BNE NOTCBS
  816.  LDA #8
  817.  STA CHAR
  818. *
  819. NOTCBS
  820.  JSR SENDCHAR
  821.  JMP TERMINAL
  822. *
  823.  ASC '*CHRISDOS 1.0*'
  824. END = *
  825.